PIC 84 ___________________ RA2 VV RA1 RA3 RA0 RTCC to + OSC1 -RST to + OSC2 GND UCC RB0 RB7 RB1 RB6 RB2 RB5 RB3____________ RB4 Parallax PIC16Cxx Assembler v4.2 SPASM.EXE Parallax PIC16Cxx Programmer v4.2 SPEP.EXE supported PIC16C5x: 52/54/55/56/57/58 PIC16Cxx: 61/62/63/64/65/71/72/73/74/84/620/621/622 Attention! a) The new SPASM.EXE and SPEP.EXE support the '5x and 'xx devices. SPASM replaces both PASM and PASMX while SPEP replaces both PEP and PEPX. To use SPEP and SPASM you need the new firmware chip: a PIC16C55. If you have old firmware, (PIC16C57), contact Parallax for an upgrade. You must recompile your old programs using SPASM if you wish to program chips using SPEP. This is because the configuration fuse data locations have been changed. If you cannot or don't want to recompile an existing application: 1) Invoke SPEP. 2) Select the correct DEVICE type. 3) Use 'L' to load your assembled code. 4) Set and ENSURE all configuration fuses are proper. 5) Save the file. Your old application is now ready for use with SPEP. b) The DEVICE directive must now appear at the start of your program and list all options. c) For '5X devices, OPTION must now be referenced as !OPTION. d) There are new ADDB/SUBB instructions (note that old SUBB fr,c should now be SUBB fr,/c). e) LSET/LJMP/LCALL instructions are now for 'xx devices, too, with over 2K code space. f) The old '5x instruction, NEG, has been removed. g) The two test files, TEST5X.SRC and TESTXX.SRC, may be assembled by SPASM. h) Warning! Many of the newer 'xx devices have permanent code-protect fuses. i) To make any 'xx programming adapter, just connect the pins VSS, VDD, MCLR, RB6, RB7, and OSC1. j) SPASM and SPEP communicate the device number via hex file word address 7FFFh (i.e. PIC16C54 = 1654). k) Please be aware that Microchip has changed some of the predefined names of special registers and flags. (i.e. RTCC is now called TMR0) You may need to obtain new data sheets. D I R E C T I V E S ------------------------------------------------------------------------------------------------------------------------------- Directive Description ------------------------------------------------------------------------------------------------------------------------------- INCLUDE 'filename' Include file 'filename' in assembly (may precede device directive) DEVICE type,setting,setting... Establish device type and settings (must precede other directives/instructions) ID word 'text' Set id to word ('5x) or 4-character text string ('xx) label = value Equate label to value label EQU value Equate label to value ORG address Set origin to address DS locations Define space: origin=origin+locations RESET address Assemble 'jmp address' at last location for reset ('5x only) EEORG address Set data eeprom origin to address ('84 only) EEDATA data,data... Preload data eeprom with data ('84 only) END End assembly (not needed) P A R A L L A X I N S T R U C T I O N S E T ------------------------------------------------------------------------------------------------------------------------------- Parallax Instruction Words Flags W used Description Microchip Equivalent ------------------------------------------------------------------------------------------------------------------------------- ======================== byte-oriented operations ======================== MOV W,#lit 1 - - Move literal into W MOVLW lit MOV W,fr 1 Z - Move fr into W MOVF fr,0 MOV fr,W 1 - - Move W into fr MOVWF fr MOV fr,#lit 2 - W Move literal into fr MOVLW lit; MOVWF fr MOV fr1,fr2 2 Z W Move fr2 into fr1 MOVF fr2,0; MOVWF fr1 ADD W,#lit 1 C,DC,Z - Add literal into W ADDLW lit ('xx only) ADD W,fr 1 C,DC,Z - Add fr into W ADDWF fr,0 ADD fr,W 1 C,DC,Z - Add W into fr ADDWF fr,1 ADD fr,#lit 2 C,DC,Z W Add literal into fr MOVLW lit; ADDWF fr,1 ADD fr1,fr2 2 C,DC,Z W Add fr2 into fr1 MOVF fr2,0; ADDWF fr1,1 MOV W,#lit-W 1 C,DC,Z - Move literal-W into W SUBLW lit ('xx only) MOV W,fr-W 1 C,DC,Z - Move fr-W into W SUBWF fr,0 SUB fr,W 1 C,DC,Z - Subtract W from fr SUBWF fr,1 SUB fr,#lit 2 C,DC,Z W Subtract literal from fr MOVLW lit; SUBWF fr,1 SUB fr1,fr2 2 C,DC,Z W Subtract fr2 from fr1 MOVF fr2,0; SUBWF fr1,1 AND W,#lit 1 Z - AND literal into W ANDLW lit AND W,fr 1 Z - AND fr into W ANDWF fr,0 AND fr,W 1 Z - AND W into fr ANDWF fr,1 AND fr,#lit 2 Z W AND literal into fr MOVLW lit; ANDWF fr,1 AND fr1,fr2 2 Z W AND fr2 into fr1 MOVF fr2,0; ANDWF fr,1 OR W,#lit 1 Z - OR literal into W IORLW lit OR W,fr 1 Z - OR fr into W IORWF fr,0 OR fr,W 1 Z - OR W into fr IORWF fr,1 OR fr,#lit 2 Z W OR literal into fr MOVLW lit; IORWF fr,1 OR fr1,fr2 2 Z W OR fr2 into fr1 MOVF fr2,0; IORWF fr1,1 XOR W,#lit 1 Z - XOR literal into W XORLW lit XOR W,fr 1 Z - XOR fr into W XORWF fr,0 XOR fr,W 1 Z - XOR W into fr XORWF fr,1 XOR fr,#lit 2 Z W XOR literal into fr MOVLW lit; XORWF fr,1 XOR fr1,fr2 2 Z W XOR fr2 into fr1 MOVF fr2,0; XORWF fr1,1 CLR W 1 Z - Clear W CLRW CLR fr 1 Z - Clear fr CLRF fr MOV W,++fr 1 Z - Move fr+1 into W INCF fr,0 INC fr 1 Z - Increment fr INCF fr,1 MOV W,--fr 1 Z - Move fr-1 into W DECF fr,0 DEC fr 1 Z - Decrement fr DECF fr,1 MOV W,>>fr 1 C - Move right-rotated fr into W RRF fr,0 RR fr 1 C - Rotate right fr RRF fr,1 MOV W,<fr 1 - - Move nibble-swapped fr into W SWAPF fr,0 SWAP fr 1 - - Swap nibbles in fr SWAPF fr,1 NOT W 1 Z - Perform not on W XORLW 0FFh MOV W,/fr 1 Z - Move not'd fr into W COMF fr,0 NOT fr 1 Z - Perform not on fr COMF fr,1 TEST W 1 Z - Test W for zero IORLW 0 TEST fr 1 Z - Test fr for zero MOVF fr,1 ======================= bit-oriented operations ======================= CLRB bit 1 - - Clear bit BCF bit CLC 1 C - Clear carry BCF 3,0 CLZ 1 Z - Clear zero BCF 3,2 SETB bit 1 - - Set bit BSF bit STC 1 C - Set carry BSF 3,0 STZ 1 Z - Set zero BSF 3,2 ADDB fr,bit 2 Z - Add bit into fr BTFSC bit; INCF fr,1 ADDB fr,/bit 2 Z - Add not bit into fr BTFSS bit; INCF fr,1 SUBB fr,bit 2 Z - Subtract bit from fr BTFSC bit; DECF fr,1 SUBB fr,/bit 2 Z - Subtract not bit from fr BTFSS bit; DECF fr,1 MOVB bit1,bit2 4 - - Move bit2 into bit1 BTFSS bit2; BCF bit1; BTFSC bit2; BSF bit1 MOVB bit1,/bit2 4 - - Move not bit2 into bit1 BTFSC bit2; BCF bit1; BTFSS bit2; BSF bit1 ============================ inc/dec-conditional branches ============================ MOVSZ W,++fr 1 - - Move fr+1 into W, skip if zero INCFSZ fr,0 INCSZ fr 1 - - Increment fr, skip if zero INCFSZ fr,1 IJNZ fr,addr 2 - - Increment fr, jump if not zero INCFSZ fr,1; GOTO addr MOVSZ W,--fr 1 - - Move fr-1 into W, skip if zero DECFSZ fr,0 DECSZ fr 1 - - Decrement fr, skip if zero DECFSZ fr,1 DJNZ fr,addr 2 - - Decrement fr, jump if not zero DECFSZ fr,1; GOTO addr ============================ compare-conditional branches ============================ CSA fr,#lit 3 C,DC,Z W Compare, skip if above MOVLW /lit; ADDWF fr,0; BTFSS 3,0 CSA fr1,fr2 3 C,DC,Z W Compare, skip if above MOVF fr1,0; SUBWF fr2,0; BTFSC 3,0 CSAE fr,#lit 3 C,DC,Z W Compare, skip if above or equal MOVLW lit; SUBWF fr,0; BTFSS 3,0 CSAE fr1,fr2 3 C,DC,Z W Compare, skip if above or equal MOVF fr2,0; SUBWF fr1,0; BTFSS 3,0 CSB fr,#lit 3 C,DC,Z W Compare, skip if below MOVLW lit; SUBWF fr,0; BTFSC 3,0 CSB fr1,fr2 3 C,DC,Z W Compare, skip if below MOVF fr2,0; SUBWF fr1,0; BTFSC 3,0 CSBE fr,#lit 3 C,DC,Z W Compare, skip if below or equal MOVLW /lit; ADDWF fr,0; BTFSC 3,0 CSBE fr1,fr2 3 C,DC,Z W Compare, skip if below or equal MOVF fr1,0; SUBWF fr2,0; BTFSS 3,0 CSE fr,#lit 3 C,DC,Z W Compare, skip if equal MOVLW lit; SUBWF fr,0; BTFSS 3,2 CSE fr1,fr2 3 C,DC,Z W Compare, skip if equal MOVF fr2,0; SUBWF fr1,0; BTFSS 3,2 CSNE fr,#lit 3 C,DC,Z W Compare, skip if not equal MOVLW lit; SUBWF fr,0; BTFSC 3,2 CSNE fr1,fr2 3 C,DC,Z W Compare, skip if not equal MOVF fr2,0; SUBWF fr1,0; BTFSC 3,2 CJA fr,#lit,addr 4 C,DC,Z W Compare, jump if above MOVLW /lit; ADDWF fr,0; BTFSC 3,0; GOTO addr CJA fr1,fr2,addr 4 C,DC,Z W Compare, jump if above MOVF fr1,0; SUBWF fr2,0; BTFSS 3,0; GOTO addr CJAE fr,#lit,addr 4 C,DC,Z W Compare, jump if above or equal MOVLW lit; SUBWF fr,0; BTFSC 3,0; GOTO addr CJAE fr1,fr2,addr 4 C,DC,Z W Compare, jump if above or equal MOVF fr2,0; SUBWF fr1,0; BTFSC 3,0; GOTO addr CJB fr,#lit,addr 4 C,DC,Z W Compare, jump if below MOVLW lit; SUBWF fr,0; BTFSS 3,0; GOTO addr CJB fr1,fr2,addr 4 C,DC,Z W Compare, jump if below MOVF fr2,0; SUBWF fr1,0; BTFSS 3,0; GOTO addr CJBE fr,#lit,addr 4 C,DC,Z W Compare, jump if below or equal MOVLW /lit; ADDWF fr,0; BTFSS 3,0; GOTO addr CJBE fr1,fr2,addr 4 C,DC,Z W Compare, jump if below or equal MOVF fr1,0; SUBWF fr2,0; BTFSC 3,0; GOTO addr CJE fr,#lit,addr 4 C,DC,Z W Compare, jump if equal MOVLW lit; SUBWF fr,0; BTFSC 3,2; GOTO addr CJE fr1,fr2,addr 4 C,DC,Z W Compare, jump if equal MOVF fr2,0; SUBWF fr1,0; BTFSC 3,2; GOTO addr CJNE fr,#lit,addr 4 C,DC,Z W Compare, jump if not equal MOVLW lit; SUBWF fr,0; BTFSS 3,2; GOTO addr CJNE fr1,fr2,addr 4 C,DC,Z W Compare, jump if not equal MOVF fr2,0; SUBWF fr1,0; BTFSS 3,2; GOTO addr ======================== bit-conditional branches ======================== SB bit 1 - - Skip if bit BTFSS bit SC 1 - - Skip if carry BTFSS 3,0 SZ 1 - - Skip if zero BTFSS 3,2 SNB bit 1 - - Skip if not bit BTFSC bit SNC 1 - - Skip if not carry BTFSC 3,0 SNZ 1 - - Skip if not zero BTFSC 3,2 JB bit,addr 2 - - Jump to address if bit BTFSC bit; GOTO addr JC addr 2 - - Jump to address if carry BTFSC 3,0; GOTO addr JZ addr 2 - - Jump to address if zero BTFSC 3,2; GOTO addr JNB bit,addr 2 - - Jump to address if not bit BTFSS bit; GOTO addr JNC addr 2 - - Jump to address if not carry BTFSS 3,0; GOTO addr JNZ addr 2 - - Jump to address if not zero BTFSS 3,2; GOTO addr ====================== unconditional branches ====================== SKIP 1 - - Skip next instruction word '5x: BTFSS 4,7 / 'xx: BTFSC 10,7 JMP addr 1 - - Jump to address GOTO addr JMP PC+W 1 C,DC,Z - Add W into PC(L) ADDWF 2,1 JMP W 1 - - Move W into PC(L) MOVWF 2 CALL addr 1 - - Call to address CALL addr RET 1 - - Return from call '5x: RETLW 0 / 'xx: RETURN RETW lit,lit... 1 - - Return from call, literal in W RETLW lit; RETLW lit... RETI 1 - - Return from interrupt RETFIE ('xx only) LSET addr 0+ - - Point to 512/2048-word page BCF/BSF ('5x: 3,5+)/('xx: 10,3+) LJMP addr 1+ - - Point to page and jump to addr BCF/BSF ('5x: 3,5+)/('xx: 10,3+); GOTO addr LCALL addr 1+ - - Point to page and call to addr BCF/BSF ('5x: 3,5+)/('xx: 10,3+); CALL addr Note: Skips should be followed only by single-word instructions. ========================== i/o and control operations ========================== MOV !port,W 1 - - Move W into port's TRIS TRIS port (port=5 to 7) MOV !port,#lit 2 - W Move literal into port's TRIS MOVLW lit; TRIS port (port=5 to 7) MOV !port,fr 2 Z W Move fr into port's TRIS MOVF fr,0; TRIS port (port=5 to 7) MOV !OPTION,W 1 - - Move W into OPTION OPTION MOV !OPTION,#lit 2 - W Move literal into OPTION MOVLW lit; OPTION MOV !OPTION,fr 2 Z W Move fr into OPTION MOVF fr,0; OPTION CLR WDT 1 TO,PD - Clear WDT and prescaler CLRWDT SLEEP 1 TO,PD - Clear WDT and enter sleep mode SLEEP NOP 1 - - No operation NOP M I C R O C H I P I N S T R U C T I O N S E T ------------------------------------------------------------------------------------------------------------------------------- Microchip Instruction Words Flags W used Description Parallax Equivalent ------------------------------------------------------------------------------------------------------------------------------- ====================================== byte-oriented file register operations ====================================== ADDWF fr,d * 1 C,DC,Z - Add W and fr ADD W,fr / ADD fr,W ANDWF fr,d * 1 Z - And W and fr AND W,fr / AND fr,W CLRF fr 1 Z - Clear fr CLR fr CLRW 1 Z - Clear W CLR W COMF fr,d * 1 Z - Complement fr MOV W,/fr / NOT fr DECF fr,d * 1 Z - Decrement fr MOV W,--fr / DEC fr DECFSZ fr,d * 1 - - Decrement fr, skip if 0 MOVSZ W,--fr / DECSZ fr INCF fr,d * 1 Z - Increment fr MOV W,++fr / INC fr INCFSZ fr,d * 1 - - Increment fr, skip if 0 MOVSZ W,++fr / INCSZ fr IORWF fr,d * 1 Z - Or W and fr OR W,fr / OR fr,W MOVF fr,d * 1 Z - Move fr MOV W,fr / TEST fr MOVWF fr 1 - - Move W to fr MOV fr,W NOP 1 - - No operation NOP RLF fr,d * 1 - - Rotate fr left through carry MOV W,<>fr / RR fr SUBWF fr,d * 1 C,DC,Z - Subtract W from fr MOV W,fr-W / SUB fr,W SWAPF fr,d * 1 Z - Swap nibbles of fr MOV W,<>fr / SWAP fr XORWF fr,d * 1 Z - Xor W and fr XOR W,fr / XOR fr,W ===================================== bit-oriented file register operations ===================================== BCF fr,b ** 1 - - Bit clear fr CLRB bit BSF fr,b ** 1 - - Bit set fr SETB bit BTFSC fr,b ** 1 - - Bit test fr, skip if clear SNB bit BTFSS fr,b ** 1 - - Bit test fr, skip if set SB bit ============================== literal and control operations ============================== ADDLW lit 1 C,DC,Z - Add literal into W ADD W,#lit ('xx only) ANDLW lit 1 Z - And literal into W AND W,#lit CALL addr 1 - - Call to address CALL addr CLRWDT 1 TO,PD - Clear WDT and prescaler CLR WDT GOTO addr 1 - - Go to address JMP addr IORLW lit 1 Z - Or literal into W OR W,#lit MOVLW lit 1 - - Move literal into W MOV W,#lit OPTION 1 - - Move W into OPTION MOV !OPTION,W RETFIE 1 - - Return from interrupt RETI ('xx only) RETLW lit 1 - - Return with literal in W RETW lit / RET ('5x) RETURN 1 - - Return from subroutine RET ('xx only) SLEEP 1 TO,PD - Clear WDT and enter sleep mode SLEEP SUBLW lit 1 C,DC,Z - Subtract W from literal MOV W,#lit-W ('xx only) TRIS port 1 - - Move W into port's TRIS MOV !port,W (port=5 to 7) XORLW lit 1 Z - Xor literal into W XOR W,#lit ==================== special instructions ==================== CLRC 1 - - Clear carry CLC SETC 1 - - Set carry STC CLRDC 1 - - Clear digit carry CLRB DC SETDC 1 - - Set digit carry SETB DC CLRZ 1 - - Clear zero CLZ SETZ 1 - - Set zero STZ SKPC 1 - - Skip if carry SC SKPNC 1 - - Skip if not carry SNC SKPDC 1 - - Skip if digit carry SB DC SKPNDC 1 - - Skip if not digit carry SNB DC SKPZ 1 - - Skip if zero SZ SKPNZ 1 - - Skip if not zero SNZ TSTF fr 1 Z - Test fr TEST fr MOVFW fr 1 Z - Move fr into W MOV W,fr NEGF fr,d * 1 Z - Negate fr NOT fr; INC fr ADDCF fr,d * 1 Z - Add carry to fr ADDB fr,C SUBCF fr,d * 1 Z - Subtract carry from fr SUBB fr,C ADDDCF fr,d * 1 Z - Add digit carry to fr ADDB fr,DC SUBDCF fr,d * 1 Z - Subtract digit carry from fr SUBB fr,DC B addr 1 - - Branch to address JMP addr BC addr 1 - - Branch if carry JC addr BNC addr 1 - - Branch if not carry JNC addr BDC addr 1 - - Branch if digit carry JB DC,addr BNDC addr 1 - - Branch if not digit carry JNB DC,addr BZ addr 1 - - Branch if zero JZ addr BNZ addr 1 - - Branch if not zero JNZ addr * alternate operands to fr,d fr = fr,1 fr,W = fr,0 ** alternate operand to fr,b bit = fr.b ------------------------------------------------------------------------------------------------------------------------------- Pre-Defined Symbols ------------------------------------------------------------------------------------------------------------------------------- ******** Dynamic Equates (always reflect current values) $ = Current origin % = Current data EEPROM origin ('84 only) ******** DEVICE directive equates - establish device type Example: DEVICE PIC16C71,XT_OSC,WDT_ON,PWRT_OFF,PROTECT_ON PIC16C52 = 1652 Device (select one) PIC16C54 = 1654 PIC16C55 = 1655 PIC16C56 = 1656 PIC16C57 = 1657 PIC16C58 = 1658 PIC16C61 = 1661 PIC16C62 = 1662 PIC16C63 = 1663 PIC16C64 = 1664 PIC16C65 = 1665 PIC16C71 = 1671 PIC16C72 = 1672 PIC16C73 = 1673 PIC16C74 = 1674 PIC16C84 = 1684 PIC16C620 = 16620 PIC16C621 = 16621 PIC16C622 = 16622 Also, select one of each specific DEVICE equates ******** PIC16C5x Equates - enabled by DEVICE PIC16C52-through-PIC16C58 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_ON = 0FFF7h Register and bit equates INDF = 00h Indirect addressing register INDIRECT = 00h Indirect addressing register TMR0 = 01h RTCC register RTCC = 01h RTCC register PCL = 02h Program counter low-byte register PC = 02h Program counter low-byte register STATUS = 03h Status register C = STATUS.0 Carry bit DC = STATUS.1 Digit carry bit Z = STATUS.2 Zero bit PD = STATUS.3 Power-down bit TO = STATUS.4 Time-out bit PA0 = STATUS.5 Page preselect bit 0 PA1 = STATUS.6 Page preselect bit 1 PA2 = STATUS.7 Page preselect bit 2 FSR = 04h File select register PORTA = 05h RA i/o register RA = 05h RA i/o register PORTB = 06h RB i/o register RB = 06h RB i/o register PORTC = 07h RC i/o register RC = 07h RC i/o register ******** PIC16C61 Equates - enabled by DEVICE PIC16C61 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFF7h Power-up timer (select one) PWRT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_ON = 0FFEFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register ******** PIC16C62 Equates - enabled by DEVICE PIC16C62 At this time, data sheets are not available for the PIC16C62. However, it is a subset of the PIC16C74, so all PIC16C74 symbols are activated when this part is selected. ******** PIC16C63 Equates - enabled by DEVICE PIC16C63 At this time, data sheets are not available for the PIC16C63. However, it is a subset of the PIC16C74, so all PIC16C74 symbols are activated when this part is selected. ******** PIC16C64 Equates - enabled by DEVICE PIC16C64 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFF7h Power-up timer (select one) PWRT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_HALF = 0FFEFh PROTECT_3_QTR = 0FFDFh PROTECT_ON = 0FFCFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PORTC = 07h 0 RC i/o register RC = 07h 0 RC i/o register PORTD = 08h 0 RD i/o register RD = 08h 0 RD i/o register PORTE = 09h 0 RE i/o register RE = 09h 0 RE i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit PIR1 = 0Ch 0 Peripheral interrupt flags register 1 TMR1IF = PIR1.0 0 TMR1 interrupt flag bit TMR2IF = PIR1.1 0 TMR2 interrupt flag bit CCP1IF = PIR1.2 0 CCP1 interrupt flag bit SSPIF = PIR1.3 0 SSP interrupt flag bit PSPIF = PIR1.7 0 PSP interrupt flag bit TMR1L = 0Eh 0 Timer 1 low byte register TMR1H = 0Fh 0 Timer 1 high byte register T1CON = 10h 0 Timer 1 control register TMR1ON = T1CON.0 0 TMR1 enable bit TMR1CS = T1CON.1 0 TMR1 clock select bit T1SYNC = T1CON.2 0 TMR1 sync enable bit T1OSCEN = T1CON.3 0 TMR1 oscillator enable bit T1CKPS0 = T1CON.4 0 TMR1 clock prescaler select bit 0 T1CKPS1 = T1CON.5 0 TMR1 clock prescaler select bit 1 TMR2 = 11h 0 Timer 2 register T2CON = 12h 0 Timer2 control register T2CKPS0 = T2CON.0 0 TMR2 clock prescaler select bit 0 T2CKPS1 = T2CON.1 0 TMR2 clock prescaler select bit 1 TMR2ON = T2CON.2 0 TMR2 enable bit TOUTPS0 = T2CON.3 0 TMR2 postscaler select bit 0 TOUTPS1 = T2CON.4 0 TMR2 postscaler select bit 1 TOUTPS2 = T2CON.5 0 TMR2 postscaler select bit 2 TOUTPS3 = T2CON.6 0 TMR2 postscaler select bit 3 SSPBUF = 13h 0 Synchronous Serial Port receive/transmit register SSPCON = 14h 0 Synchronous Serial Port control register SSPM0 = SSPCON.0 0 SSP mode select bit 0 SSPM1 = SSPCON.1 0 SSP mode select bit 1 SSPM2 = SSPCON.2 0 SSP mode select bit 2 SSPM3 = SSPCON.3 0 SSP mode select bit 3 CKP = SSPCON.4 0 SSP clock polarity select bit SSPEN = SSPCON.5 0 SSP enable bit SSPOV = SSPCON.6 0 SSP receive overflow flag bit WCOL = SSPCON.7 0 SSP write collision detect bit CCPR1L = 15h 0 Capture/Compare/PWM 1 low byte register CCPR1H = 16h 0 Capture/Compare/PWM 1 high byte register CCP1CON = 17h 0 Capture/Compare/PWM 1 control register CCP1M0 = CCP1CON.0 0 CCP1 mode select bit 0 CCP1M1 = CCP1CON.1 0 CCP1 mode select bit 1 CCP1M2 = CCP1CON.2 0 CCP1 mode select bit 2 CCP1M3 = CCP1CON.3 0 CCP1 mode select bit 3 CCP1Y = CCP1CON.4 0 CCP1 10-bit PWM low order bit 0 CCP1X = CCP1CON.5 0 CCP1 10-bit PWM low order bit 1 OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register TRISC = 07h 1 RC tristate control register TRISD = 08h 1 RD tristate control register TRISE = 09h 1 RE tristate control register TRISE0 = TRISE.0 1 RE0 tristate control bit TRISE1 = TRISE.1 1 RE1 tristate control bit TRISE2 = TRISE.2 1 RE2 tristate control bit PSPMODE = TRISE.4 1 PSP mode bit IBOV = TRISE.5 1 PSP input buffer overflow flag bit OBF = TRISE.6 1 PSP output buffer full flag bit IBF = TRISE.7 1 PSP input buffer full flag bit PIE1 = 0Ch 1 Peripheral interrupt enable register TMR1IE = PIE1.0 1 TMR1 interrupt enable bit TMR2IE = PIE1.1 1 TMR2 interrupt enable bit CCP1IE = PIE1.2 1 CCP1 interrupt enable bit SSPIE = PIE1.3 1 SSP interrupt enable bit PSPIE = PIE1.7 1 PSP interrupt enable bit PCON = 0Eh 1 Power-On-Reset detection register POR = PCON.1 1 Power-On-Reset flag bit PR2 = 12h 1 Timer 2 period register SSPADD = 13h 1 Synchronous Serial Port I2C address register SSPSTAT = 14h 1 Synchronous Serial Port status register BF = SSPSTAT.0 1 SSP buffer full flag bit UA = SSPSTAT.1 1 SSP 10-bit I2C update address flag bit RW = SSPSTAT.2 1 SSP I2C read/write status bit S = SSPSTAT.3 1 SSP I2C start flag bit P = SSPSTAT.4 1 SSP I2C stop flag bit DA = SSPSTAT.5 1 SSP I2C data/address flag bit ******** PIC16C65 Equates - enabled by DEVICE PIC16C65 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFF7h Power-up timer (select one) PWRT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_HALF = 0FFEFh PROTECT_3_QTR = 0FFDFh PROTECT_ON = 0FFCFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PORTC = 07h 0 RC i/o register RC = 07h 0 RC i/o register PORTD = 08h 0 RD i/o register RD = 08h 0 RD i/o register PORTE = 09h 0 RE i/o register RE = 09h 0 RE i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit PIR1 = 0Ch 0 Peripheral interrupt flags register 1 TMR1IF = PIR1.0 0 TMR1 interrupt flag bit TMR2IF = PIR1.1 0 TMR2 interrupt flag bit CCP1IF = PIR1.2 0 CCP1 interrupt flag bit SSPIF = PIR1.3 0 SSP interrupt flag bit TXIF = PIR1.4 0 SCI transmit interrupt flag bit RCIF = PIR1.5 0 SCI receive interrupt flag bit PSPIF = PIR1.7 0 PSP interrupt flag bit PIR2 = 0Dh 0 Peripheral interrupt flags register 2 CCP2IF = PIR2.0 0 CCP2 interrupt flag bit TMR1L = 0Eh 0 Timer 1 low byte register TMR1H = 0Fh 0 Timer 1 high byte register T1CON = 10h 0 Timer 1 control register TMR1ON = T1CON.0 0 TMR1 enable bit TMR1CS = T1CON.1 0 TMR1 clock select bit T1SYNC = T1CON.2 0 TMR1 sync enable bit T1OSCEN = T1CON.3 0 TMR1 oscillator enable bit T1CKPS0 = T1CON.4 0 TMR1 clock prescaler select bit 0 T1CKPS1 = T1CON.5 0 TMR1 clock prescaler select bit 1 TMR2 = 11h 0 Timer 2 register T2CON = 12h 0 Timer2 control register T2CKPS0 = T2CON.0 0 TMR2 clock prescaler select bit 0 T2CKPS1 = T2CON.1 0 TMR2 clock prescaler select bit 1 TMR2ON = T2CON.2 0 TMR2 enable bit TOUTPS0 = T2CON.3 0 TMR2 postscaler select bit 0 TOUTPS1 = T2CON.4 0 TMR2 postscaler select bit 1 TOUTPS2 = T2CON.5 0 TMR2 postscaler select bit 2 TOUTPS3 = T2CON.6 0 TMR2 postscaler select bit 3 SSPBUF = 13h 0 Synchronous Serial Port receive/transmit register SSPCON = 14h 0 Synchronous Serial Port control register SSPM0 = SSPCON.0 0 SSP mode select bit 0 SSPM1 = SSPCON.1 0 SSP mode select bit 1 SSPM2 = SSPCON.2 0 SSP mode select bit 2 SSPM3 = SSPCON.3 0 SSP mode select bit 3 CKP = SSPCON.4 0 SSP clock polarity select bit SSPEN = SSPCON.5 0 SSP enable bit SSPOV = SSPCON.6 0 SSP receive overflow flag bit WCOL = SSPCON.7 0 SSP write collision detect bit CCPR1L = 15h 0 Capture/Compare/PWM 1 low byte register CCPR1H = 16h 0 Capture/Compare/PWM 1 high byte register CCP1CON = 17h 0 Capture/Compare/PWM 1 control register CCP1M0 = CCP1CON.0 0 CCP1 mode select bit 0 CCP1M1 = CCP1CON.1 0 CCP1 mode select bit 1 CCP1M2 = CCP1CON.2 0 CCP1 mode select bit 2 CCP1M3 = CCP1CON.3 0 CCP1 mode select bit 3 CCP1Y = CCP1CON.4 0 CCP1 10-bit PWM low order bit 0 CCP1X = CCP1CON.5 0 CCP1 10-bit PWM low order bit 1 RCSTA = 18h 0 SCI receive status and control register (PIC16C65 only) RCD8 = RCSTA.0 0 SCI 9th received bit OERR = RCSTA.1 0 SCI overrun error bit FERR = RCSTA.2 0 SCI framing error bit CREN = RCSTA.4 0 SCI continuous receive enable bit SREN = RCSTA.5 0 SCI single receive enable bit RC89 = RCSTA.6 0 SCI receive data length bit SPEN = RCSTA.7 0 SCI serial port enable bit TXREG = 19h 0 SCI transmit data register RCREG = 1Ah 0 SCI receive data register CCPR2L = 1Bh 0 Capture/Compare/PWM 2 low byte register CCPR2H = 1Ch 0 Capture/Compare/PWM 2 high byte register CCP2CON = 1Dh 0 Capture/Compare/PWM 2 control register CCP2M0 = CCP2CON.0 0 CCP2 mode select bit 0 CCP2M1 = CCP2CON.1 0 CCP2 mode select bit 1 CCP2M2 = CCP2CON.2 0 CCP2 mode select bit 2 CCP2M3 = CCP2CON.3 0 CCP2 mode select bit 3 CCP2Y = CCP2CON.4 0 CCP2 10-bit PWM low order bit 0 CCP2X = CCP2CON.5 0 CCP2 10-bit PWM low order bit 1 OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register TRISC = 07h 1 RC tristate control register TRISD = 08h 1 RD tristate control register TRISE = 09h 1 RE tristate control register TRISE0 = TRISE.0 1 RE0 tristate control bit TRISE1 = TRISE.1 1 RE1 tristate control bit TRISE2 = TRISE.2 1 RE2 tristate control bit PSPMODE = TRISE.4 1 PSP mode bit IBOV = TRISE.5 1 PSP input buffer overflow flag bit OBF = TRISE.6 1 PSP output buffer full flag bit IBF = TRISE.7 1 PSP input buffer full flag bit PIE1 = 0Ch 1 Peripheral interrupt enable register 1 TMR1IE = PIE1.0 1 TMR1 interrupt enable bit TMR2IE = PIE1.1 1 TMR2 interrupt enable bit CCP1IE = PIE1.2 1 CCP1 interrupt enable bit SSPIE = PIE1.3 1 SSP interrupt enable bit TXIE = PIE1.4 1 SCI transmit interrupt enable bit RCIE = PIE1.5 1 SCI receive interrupt enable bit PSPIE = PIE1.7 1 PSP interrupt enable bit PIE2 = 0Dh 1 Peripheral interrupt enable register 2 CCP2IE = PIE2.0 1 CCP2 interrupt enable bit PCON = 0Eh 1 Power-On-Reset detection register POR = PCON.1 1 Power-On-Reset flag bit PR2 = 12h 1 Timer 2 period register SSPADD = 13h 1 Synchronous Serial Port I2C address register SSPSTAT = 14h 1 Synchronous Serial Port status register BF = SSPSTAT.0 1 SSP buffer full flag bit UA = SSPSTAT.1 1 SSP 10-bit I2C update address flag bit RW = SSPSTAT.2 1 SSP I2C read/write status bit S = SSPSTAT.3 1 SSP I2C start flag bit P = SSPSTAT.4 1 SSP I2C stop flag bit DA = SSPSTAT.5 1 SSP I2C data/address flag bit TXSTA = 18h 1 SCI transmit status and control register (PIC16C65 only) TXD8 = TXSTA.0 1 SCI 9th transmit bit (PIC16C65 only) TRMT = TXSTA.1 1 SCI transmit empty flag bit (PIC16C65 only) BRGH = TXSTA.2 1 SCI high baud rate select bit (PIC16C65 only) SYNC = TXSTA.4 1 SCI async/sync mode bit (PIC16C65 only) TXEN = TXSTA.5 1 SCI transmit enable bit (PIC16C65 only) TX89 = TXSTA.6 1 SCI transmit data length bit (PIC16C65 only) CSRC = TXSTA.7 1 SCI clock source select bit (PIC16C65 only) SPBRG = 19h 1 SCI baud rate register (PIC16C65 only) ******** PIC16C71 Equates - enabled by DEVICE PIC16C71 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFF7h Power-up timer (select one) PWRT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_ON = 0FFEFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register ADCON0 = 08h 0 Analog to Digitial Converter control register 0 ADON = ADCON0.0 0 ADC power control bit ADIF = ADCON0.1 0 ADC interrupt flag bit GO_DONE = ADCON0.2 0 ADC go command / done flag bit CHS0 = ADCON0.3 0 ADC channel select bit 0 CHS1 = ADCON0.4 0 ADC channel select bit 1 ADCS0 = ADCON0.6 0 ADC clock select bit 0 ADCS1 = ADCON0.7 0 ADC clock select bit 1 ADRES = 09h 0/1 Analog to Digital Converter result register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register ADCON1 = 08h 1 Analog to Digitial Converter control register 1 PCFG0 = ADCON1.0 1 RA port configuration bit 0 PCFG1 = ADCON1.1 1 RA port configuration bit 1 ******** PIC16C72 Equates - enabled by DEVICE PIC16C72 At this time, data sheets are not available for the PIC16C72. However, it is a subset of the PIC16C74, so all PIC16C74 symbols are activated when this part is selected. ******** PIC16C73 Equates - enabled by DEVICE PIC16C73 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFF7h Power-up timer (select one) PWRT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_HALF = 0FFEFh PROTECT_3_QTR = 0FFDFh PROTECT_ON = 0FFCFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PORTC = 07h 0 RC i/o register RC = 07h 0 RC i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit PIR1 = 0Ch 0 Peripheral interrupt flags register 1 TMR1IF = PIR1.0 0 TMR1 interrupt flag bit TMR2IF = PIR1.1 0 TMR2 interrupt flag bit CCP1IF = PIR1.2 0 CCP1 interrupt flag bit SSPIF = PIR1.3 0 SSP interrupt flag bit ADIF = PIR1.6 0 ADC completion interrupt flag bit PSPIF = PIR1.7 0 PSP interrupt flag bit PIR2 = 0Dh 0 Peripheral interrupt flags register 2 CCP2IF = PIR2.0 0 CCP2 interrupt flag bit TMR1L = 0Eh 0 Timer 1 low byte register TMR1H = 0Fh 0 Timer 1 high byte register T1CON = 10h 0 Timer 1 control register TMR1ON = T1CON.0 0 TMR1 enable bit TMR1CS = T1CON.1 0 TMR1 clock select bit T1SYNC = T1CON.2 0 TMR1 sync enable bit T1OSCEN = T1CON.3 0 TMR1 oscillator enable bit T1CKPS0 = T1CON.4 0 TMR1 clock prescaler select bit 0 T1CKPS1 = T1CON.5 0 TMR1 clock prescaler select bit 1 TMR2 = 11h 0 Timer 2 register T2CON = 12h 0 Timer 2 control register T2CKPS0 = T2CON.0 0 TMR2 clock prescaler select bit 0 T2CKPS1 = T2CON.1 0 TMR2 clock prescaler select bit 1 TMR2ON = T2CON.2 0 TMR2 enable bit TOUTPS0 = T2CON.3 0 TMR2 postscaler select bit 0 TOUTPS1 = T2CON.4 0 TMR2 postscaler select bit 1 TOUTPS2 = T2CON.5 0 TMR2 postscaler select bit 2 TOUTPS3 = T2CON.6 0 TMR2 postscaler select bit 3 SSPBUF = 13h 0 Synchronous Serial Port receive/transmit register SSPCON = 14h 0 Synchronous Serial Port control register SSPM0 = SSPCON.0 0 SSP mode select bit 0 SSPM1 = SSPCON.1 0 SSP mode select bit 1 SSPM2 = SSPCON.2 0 SSP mode select bit 2 SSPM3 = SSPCON.3 0 SSP mode select bit 3 CKP = SSPCON.4 0 SSP clock polarity select bit SSPEN = SSPCON.5 0 SSP enable bit SSPOV = SSPCON.6 0 SSP receive overflow flag bit WCOL = SSPCON.7 0 SSP write collision detect bit CCPR1L = 15h 0 Capture1/Compare1/PWM 1 low byte register CCPR1H = 16h 0 Capture1/Compare1/PWM 1 high byte register CCP1CON = 17h 0 Capture1/Compare1/PWM 1 control register CCP1M0 = CCP1CON.0 0 CCP1 mode select bit 0 CCP1M1 = CCP1CON.1 0 CCP1 mode select bit 1 CCP1M2 = CCP1CON.2 0 CCP1 mode select bit 2 CCP1M3 = CCP1CON.3 0 CCP1 mode select bit 3 CCP1Y = CCP1CON.4 0 CCP1 10-bit PWM low order bit 0 CCP1X = CCP1CON.5 0 CCP1 10-bit PWM low order bit 1 RCSTA = 18h 0 Asynchronus Serial Port status and control register RCD8 = RCSTA.0 0 ASP 9th/parity bit of received data OERR = RCSTA.1 0 ASP overrun error bit FERR = RCSTA.2 0 ASP framing error bit CREN = RCSTA.4 0 ASP continuous-receive enable bit SREN = RCSTA.5 0 ASP single-receive enable bit RC89 = RCSTA.6 0 ASP receive data length bit SPEN = RCSTA.7 0 ASP enable bit TXREG = 19h 0 Asynchronous serial port transmit register RCREG = 1Ah 0 Asynchronous serial port receive register CCPR2L = 1Bh 0 Capture2/Compare2/PWM 2 low byte register CCPR2H = 1Ch 0 Capture2/Compare2/PWM 2 high byte register CCP2CON = 1Dh 0 Capture2/Compare2/PWM 2 control register CCP2M0 = CCP2CON.0 0 CCP2 mode select bit 0 CCP2M1 = CCP2CON.1 0 CCP2 mode select bit 1 CCP2M2 = CCP2CON.2 0 CCP2 mode select bit 2 CCP2M3 = CCP2CON.3 0 CCP2 mode select bit 3 CCP2Y = CCP2CON.4 0 CCP2 10-bit PWM low order bit 0 CCP2X = CCP2CON.5 0 CCP2 10-bit PWM low order bit 1 ADRES = 1Eh 0 Analog to Digitial Converter result register ADCON0 = 1Fh 0 Analog to Digitial Converter control register 0 ADON = ADCON0.0 0 ADC power control bit GO_DONE = ADCON0.2 0 ADC go command / done flag bit CHS0 = ADCON0.3 0 ADC channel select bit 0 CHS1 = ADCON0.4 0 ADC channel select bit 1 CHS2 = ADCON0.5 0 ADC channel select bit 2 ADCS0 = ADCON0.6 0 ADC clock select bit 0 ADCS1 = ADCON0.7 0 ADC clock select bit 1 OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register TRISC = 07h 1 RC tristate control register PIE1 = 0Ch 1 Peripheral interrupt enable register 1 TMR1IE = PIE1.0 1 TMR1 interrupt enable bit TMR2IE = PIE1.1 1 TMR2 interrupt enable bit CCP1IE = PIE1.2 1 CCP1 interrupt enable bit SSPIE = PIE1.3 1 SSP interrupt enable bit ADIE = PIE1.6 1 ADC interrupt enable bit PSPIE = PIE1.7 1 PSP interrupt enable bit PIE2 = 0Dh 1 Peripheral interrupt enable register 2 CCP2IE = PIE2.0 1 CCP2 interrupt enable bit PCON = 0Eh 1 Power-On-Reset detection register POR = PCON.1 1 POR flag bit PR2 = 12h 1 Timer 2 period register SSPADD = 13h 1 Synchronous Serial Port I2C address register SSPSTAT = 14h 1 Synchronous Serial Port status register BF = SSPSTAT.0 1 SSP buffer full flag bit UA = SSPSTAT.1 1 SSP 10-bit I2C update address flag bit RW = SSPSTAT.2 1 SSP I2C read/write status bit S = SSPSTAT.3 1 SSP I2C start flag bit P = SSPSTAT.4 1 SSP I2C stop flag bit DA = SSPSTAT.5 1 SSP I2C data/address flag bit TXSTA = 18h 1 Asynchronous Serial Port transmit status and control register TXD8 = TXSTA.0 1 ASP 9th bit of transmit data TRMT = TXSTA.1 1 ASP transmit shift register empty BRGH = TXSTA.2 1 ASP high baud rate select bit SYNC = TXSTA.4 1 ASP mode bit TXEN = TXSTA.5 1 ASP transmit enable bit TX89 = TXSTA.6 1 ASP transmit data length bit CSRC = TXSTA.7 1 ASP clock source select bit SPBRG = 19h 1 Asynchronous Serial Port baud rate register ADCON1 = 1Fh 1 Analog to Digitial Converter control register 1 PCFG0 = ADCON1.0 1 RA port configuration bit 0 PCFG1 = ADCON1.1 1 RA port configuration bit 1 PCFG2 = ADCON1.2 1 RA port configuration bit 2 ******** PIC16C74 Equates - enabled by DEVICE PIC16C74 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFF7h Power-up timer (select one) PWRT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_HALF = 0FFEFh PROTECT_3_QTR = 0FFDFh PROTECT_ON = 0FFCFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PORTC = 07h 0 RC i/o register RC = 07h 0 RC i/o register PORTD = 08h 0 RD i/o register RD = 08h 0 RD i/o register PORTE = 09h 0 RE i/o register RE = 09h 0 RE i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit PIR1 = 0Ch 0 Peripheral interrupt flags register 1 TMR1IF = PIR1.0 0 TMR1 interrupt flag bit TMR2IF = PIR1.1 0 TMR2 interrupt flag bit CCP1IF = PIR1.2 0 CCP1 interrupt flag bit SSPIF = PIR1.3 0 SSP interrupt flag bit TXIF = PIR1.4 0 ASP transmit interrupt flag bit RCIF = PIR1.5 0 ASP receive interrupt flag bit ADIF = PIR1.6 0 ADC completion interrupt flag bit PSPIF = PIR1.7 0 PSP interrupt flag bit PIR2 = 0Dh 0 Peripheral interrupt flags register 2 CCP2IF = PIR2.0 0 CCP2 interrupt flag bit TMR1L = 0Eh 0 Timer 1 low byte register TMR1H = 0Fh 0 Timer 1 high byte register T1CON = 10h 0 Timer 1 control register TMR1ON = T1CON.0 0 TMR1 enable bit TMR1CS = T1CON.1 0 TMR1 clock select bit T1SYNC = T1CON.2 0 TMR1 sync enable bit T1OSCEN = T1CON.3 0 TMR1 oscillator enable bit T1CKPS0 = T1CON.4 0 TMR1 clock prescaler select bit 0 T1CKPS1 = T1CON.5 0 TMR1 clock prescaler select bit 1 TMR2 = 11h 0 Timer 2 register T2CON = 12h 0 Timer 2 control register T2CKPS0 = T2CON.0 0 TMR2 clock prescaler select bit 0 T2CKPS1 = T2CON.1 0 TMR2 clock prescaler select bit 1 TMR2ON = T2CON.2 0 TMR2 enable bit TOUTPS0 = T2CON.3 0 TMR2 postscaler select bit 0 TOUTPS1 = T2CON.4 0 TMR2 postscaler select bit 1 TOUTPS2 = T2CON.5 0 TMR2 postscaler select bit 2 TOUTPS3 = T2CON.6 0 TMR2 postscaler select bit 3 SSPBUF = 13h 0 Synchronous Serial Port receive/transmit register SSPCON = 14h 0 Synchronous Serial Port control register SSPM0 = SSPCON.0 0 SSP mode select bit 0 SSPM1 = SSPCON.1 0 SSP mode select bit 1 SSPM2 = SSPCON.2 0 SSP mode select bit 2 SSPM3 = SSPCON.3 0 SSP mode select bit 3 CKP = SSPCON.4 0 SSP clock polarity select bit SSPEN = SSPCON.5 0 SSP enable bit SSPOV = SSPCON.6 0 SSP receive overflow flag bit WCOL = SSPCON.7 0 SSP write collision detect bit CCPR1L = 15h 0 Capture1/Compare1/PWM 1 low byte register CCPR1H = 16h 0 Capture1/Compare1/PWM 1 high byte register CCP1CON = 17h 0 Capture1/Compare1/PWM 1 control register CCP1M0 = CCP1CON.0 0 CCP1 mode select bit 0 CCP1M1 = CCP1CON.1 0 CCP1 mode select bit 1 CCP1M2 = CCP1CON.2 0 CCP1 mode select bit 2 CCP1M3 = CCP1CON.3 0 CCP1 mode select bit 3 CCP1Y = CCP1CON.4 0 CCP1 10-bit PWM low order bit 0 CCP1X = CCP1CON.5 0 CCP1 10-bit PWM low order bit 1 RCSTA = 18h 0 Asynchronus Serial Port status and control register RCD8 = RCSTA.0 0 ASP 9th/parity bit of received data OERR = RCSTA.1 0 ASP overrun error bit FERR = RCSTA.2 0 ASP framing error bit CREN = RCSTA.4 0 ASP continuous-receive enable bit SREN = RCSTA.5 0 ASP single-receive enable bit RC89 = RCSTA.6 0 ASP receive data length bit SPEN = RCSTA.7 0 ASP enable bit TXREG = 19h 0 Asynchronous serial port transmit register RCREG = 1Ah 0 Asynchronous serial port receive register CCPR2L = 1Bh 0 Capture2/Compare2/PWM 2 low byte register CCPR2H = 1Ch 0 Capture2/Compare2/PWM 2 high byte register CCP2CON = 1Dh 0 Capture2/Compare2/PWM 2 control register CCP2M0 = CCP2CON.0 0 CCP2 mode select bit 0 CCP2M1 = CCP2CON.1 0 CCP2 mode select bit 1 CCP2M2 = CCP2CON.2 0 CCP2 mode select bit 2 CCP2M3 = CCP2CON.3 0 CCP2 mode select bit 3 CCP2Y = CCP2CON.4 0 CCP2 10-bit PWM low order bit 0 CCP2X = CCP2CON.5 0 CCP2 10-bit PWM low order bit 1 ADRES = 1Eh 0 Analog to Digitial Converter result register ADCON0 = 1Fh 0 Analog to Digitial Converter control register 0 ADON = ADCON0.0 0 ADC power control bit GO_DONE = ADCON0.2 0 ADC go command / done flag bit CHS0 = ADCON0.3 0 ADC channel select bit 0 CHS1 = ADCON0.4 0 ADC channel select bit 1 CHS2 = ADCON0.5 0 ADC channel select bit 2 ADCS0 = ADCON0.6 0 ADC clock select bit 0 ADCS1 = ADCON0.7 0 ADC clock select bit 1 OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register TRISC = 07h 1 RC tristate control register TRISD = 08h 1 RD tristate control register TRISE = 09h 1 RE tristate control register TRISE0 = TRISE.0 1 RE0 tristate control bit TRISE1 = TRISE.1 1 RE1 tristate control bit TRISE2 = TRISE.2 1 RE2 tristate control bit PSPMODE = TRISE.4 1 PSP mode bit IBOV = TRISE.5 1 PSP input buffer overflow flag bit OBF = TRISE.6 1 PSP output buffer full flag bit IBF = TRISE.7 1 PSP input buffer full flag bit PIE1 = 0Ch 1 Peripheral interrupt enable register 1 TMR1IE = PIE1.0 1 TMR1 interrupt enable bit TMR2IE = PIE1.1 1 TMR2 interrupt enable bit CCP1IE = PIE1.2 1 CCP1 interrupt enable bit SSPIE = PIE1.3 1 SSP interrupt enable bit TXIE = PIE1.4 1 ASP transmit interrupt enable bit RCIE = PIE1.5 1 ASP receive interrupt enable bit ADIE = PIE1.6 1 ADC interrupt enable bit PSPIE = PIE1.7 1 PSP interrupt enable bit PIE2 = 0Dh 1 Peripheral interrupt enable register 2 CCP2IE = PIE2.0 1 CCP2 interrupt enable bit PCON = 0Eh 1 Power-On-Reset detection register POR = PCON.1 1 POR flag bit PR2 = 12h 1 Timer 2 period register SSPADD = 13h 1 Synchronous Serial Port I2C address register SSPSTAT = 14h 1 Synchronous Serial Port status register BF = SSPSTAT.0 1 SSP buffer full flag bit UA = SSPSTAT.1 1 SSP 10-bit I2C update address flag bit RW = SSPSTAT.2 1 SSP I2C read/write status bit S = SSPSTAT.3 1 SSP I2C start flag bit P = SSPSTAT.4 1 SSP I2C stop flag bit DA = SSPSTAT.5 1 SSP I2C data/address flag bit TXSTA = 18h 1 Asynchronous Serial Port transmit status and control register TXD8 = TXSTA.0 1 ASP 9th bit of transmit data TRMT = TXSTA.1 1 ASP transmit shift register empty BRGH = TXSTA.2 1 ASP high baud rate select bit SYNC = TXSTA.4 1 ASP mode bit TXEN = TXSTA.5 1 ASP transmit enable bit TX89 = TXSTA.6 1 ASP transmit data length bit CSRC = TXSTA.7 1 ASP clock source select bit SPBRG = 19h 1 Asynchronous Serial Port baud rate register ADCON1 = 1Fh 1 Analog to Digitial Converter control register 1 PCFG0 = ADCON1.0 1 RA port configuration bit 0 PCFG1 = ADCON1.1 1 RA port configuration bit 1 PCFG2 = ADCON1.2 1 RA port configuration bit 2 ******** PIC16C84 Equates - enabled by DEVICE PIC16C84 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFF7h Power-up timer (select one) PWRT_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_ON = 0FFEFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register EEDATA = 08h 0 EEPROM data register EEADR = 09h 0 EEPROM address register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit EEIE = INTCON.6 0/1 EEPROM interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register EECON1 = 08h 1 EEPROM control register 1 RD = EECON1.0 1 EEPROM read control bit WR = EECON1.1 1 EEPROM write control bit WREN = EECON1.2 1 EEPROM write enable bit WRERR = EECON1.3 1 EEPROM write error flag bit EEIF = EECON1.4 1 EEPROM interrupt flag bit EECON2 = 09h 1 EEPROM control register 2 ******** PIC16C620 Equates - enabled by DEVICE PIC16C620 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFFFh Power-up timer (select one) PWRT_ON = 0FFF7h BOD_OFF = 0FFBFh Brown-out detector (select one) BOD_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_ON = 0C0CFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit PIR1 = 0Ch 0 Peripheral interrupt register CMIF = PIR1.6 0 Comparator interrupt flag bit CMCON = 1Fh 0 Comparator control register CM0 = CMCON.0 0 Comparator mode bit 0 CM1 = CMCON.1 0 Comparator mode bit 1 CM2 = CMCON.2 0 Comparator mode bit 2 CIS = CMCON.3 0 Comparator input switch bit C1OUT = CMCON.6 0 Comparator 1 output bit C2OUT = CMCON.7 0 Comparator 2 output bit OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register PIE1 = 0Ch 1 Peripheral interrupt enable register CMIE = PIE1.6 1 Comparator interrupt enable bit PCON = 0Eh 1 Reset identification register BO = PCON.0 1 Brown-out detect bit POR = PCON.1 1 Power-on detect bit VRCON = 1Fh 1 Voltage reference control register VR0 = VRCON.0 1 Voltage reference select bit 0 VR1 = VRCON.1 1 Voltage reference select bit 1 VR2 = VRCON.2 1 Voltage reference select bit 2 VR3 = VRCON.3 1 Voltage reference select bit 3 VRR = VRCON.5 1 Voltage range select bit VROE = VRCON.6 1 Voltage reference output enable bit VREN = VRCON.7 1 Voltage reference enable bit ******** PIC16C621 Equates - enabled by DEVICE PIC16C621 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFFFh Power-up timer (select one) PWRT_ON = 0FFF7h BOD_OFF = 0FFBFh Brown-out detector (select one) BOD_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_HALF = 0D5DFh PROTECT_ON = 0C0CFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit PIR1 = 0Ch 0 Peripheral interrupt register CMIF = PIR1.6 0 Comparator interrupt flag bit CMCON = 1Fh 0 Comparator control register CM0 = CMCON.0 0 Comparator mode bit 0 CM1 = CMCON.1 0 Comparator mode bit 1 CM2 = CMCON.2 0 Comparator mode bit 2 CIS = CMCON.3 0 Comparator input switch bit C1OUT = CMCON.6 0 Comparator 1 output bit C2OUT = CMCON.7 0 Comparator 2 output bit OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register PIE1 = 0Ch 1 Peripheral interrupt enable register CMIE = PIE1.6 1 Comparator interrupt enable bit PCON = 0Eh 1 Reset identification register BO = PCON.0 1 Brown-out detect bit POR = PCON.1 1 Power-on detect bit VRCON = 1Fh 1 Voltage reference control register VR0 = VRCON.0 1 Voltage reference select bit 0 VR1 = VRCON.1 1 Voltage reference select bit 1 VR2 = VRCON.2 1 Voltage reference select bit 2 VR3 = VRCON.3 1 Voltage reference select bit 3 VRR = VRCON.5 1 Voltage range select bit VROE = VRCON.6 1 Voltage reference output enable bit VREN = VRCON.7 1 Voltage reference enable bit ******** PIC16C622 Equates - enabled by DEVICE PIC16C622 Specific DEVICE equates LP_OSC = 0FFFCh Oscillator (select one) XT_OSC = 0FFFDh HS_OSC = 0FFFEh RC_OSC = 0FFFFh WDT_OFF = 0FFFBh Watchdog timer (select one) WDT_ON = 0FFFFh PWRT_OFF = 0FFFFh Power-up timer (select one) PWRT_ON = 0FFF7h BOD_OFF = 0FFBFh Brown-out detector (select one) BOD_ON = 0FFFFh PROTECT_OFF = 0FFFFh Code protection (select one) PROTECT_HALF = 0EAEFh PROTECT_3_QTR = 0D5DFh PROTECT_ON = 0C0CFh Register and bit equates page INDF = 00h 0/1 Indirect addressing register TMR0 = 01h 0 Timer 0 register PCL = 02h 0/1 Program counter low-byte register STATUS = 03h 0/1 Status register C = STATUS.0 0/1 Carry bit DC = STATUS.1 0/1 Digit carry bit Z = STATUS.2 0/1 Zero bit PD = STATUS.3 0/1 Power-down bit TO = STATUS.4 0/1 Time-out bit RP0 = STATUS.5 0/1 Register page bit 0 RP1 = STATUS.6 0/1 Register page bit 1 IRP = STATUS.7 0/1 Indirect register page bit FSR = 04h 0/1 File select register PORTA = 05h 0 RA i/o register RA = 05h 0 RA i/o register PORTB = 06h 0 RB i/o register RB = 06h 0 RB i/o register PCLATH = 0Ah 0/1 Program counter high-byte register INTCON = 0Bh 0/1 Interrupt control register RBIF = INTCON.0 0/1 RB4-RB7 change interrupt flag bit INTF = INTCON.1 0/1 RB0/INT interrupt flag bit T0IF = INTCON.2 0/1 TMR0 overflow interrupt flag bit RBIE = INTCON.3 0/1 RB4-RB7 change interrupt enable bit INTE = INTCON.4 0/1 RB0/INT interrupt enable bit T0IE = INTCON.5 0/1 TMR0 overflow interrupt enable bit PEIE = INTCON.6 0/1 Peripheral interrupt enable bit GIE = INTCON.7 0/1 Global interrupt enable bit PIR1 = 0Ch 0 Peripheral interrupt register CMIF = PIR1.6 0 Comparator interrupt flag bit CMCON = 1Fh 0 Comparator control register CM0 = CMCON.0 0 Comparator mode bit 0 CM1 = CMCON.1 0 Comparator mode bit 1 CM2 = CMCON.2 0 Comparator mode bit 2 CIS = CMCON.3 0 Comparator input switch bit C1OUT = CMCON.6 0 Comparator 1 output bit C2OUT = CMCON.7 0 Comparator 2 output bit OPTION = 01h 1 OPTION register PS0 = OPTION.0 1 Prescaler bit 0 PS1 = OPTION.1 1 Prescaler bit 1 PS2 = OPTION.2 1 Prescaler bit 2 PSA = OPTION.3 1 Prescaler assignment bit T0SE = OPTION.4 1 TMR0 source edge bit T0CS = OPTION.5 1 TMR0 clock select bit INTEDG = OPTION.6 1 RB0/INT edge select bit RBPU = OPTION.7 1 RB weak pull-up enable bit TRISA = 05h 1 RA tristate control register TRISB = 06h 1 RB tristate control register PIE1 = 0Ch 1 Peripheral interrupt enable register CMIE = PIE1.6 1 Comparator interrupt enable bit PCON = 0Eh 1 Reset identification register BO = PCON.0 1 Brown-out detect bit POR = PCON.1 1 Power-on detect bit VRCON = 1Fh 1 Voltage reference control register VR0 = VRCON.0 1 Voltage reference select bit 0 VR1 = VRCON.1 1 Voltage reference select bit 1 VR2 = VRCON.2 1 Voltage reference select bit 2 VR3 = VRCON.3 1 Voltage reference select bit 3 VRR = VRCON.5 1 Voltage range select bit VROE = VRCON.6 1 Voltage reference output enable bit VREN = VRCON.7 1 Voltage reference enable bit